package top.atluofu.government.sqlparser;

import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * @ClassName: SQLVisitor
 * @description: TODO
 * @author: 有罗敷的马同学
 * @datetime: 2023Year-05Month-13Day-18:25
 * @Version: 1.0
 */
public interface SQLVisitor<T> extends ParseTreeVisitor<T> {
    /**
     * Visit a parse tree produced by {@link SQLParser#statement}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitStatement(SQLParser.StatementContext ctx);
    /**
     * Visit a parse tree produced by {@link SQLParser#insertStatement}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitInsertStatement(SQLParser.InsertStatementContext ctx);
    /**
     * Visit a parse tree produced by {@link SQLParser#selectStatement}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitSelectStatement(SQLParser.SelectStatementContext ctx);
    /**
     * Visit a parse tree produced by {@link SQLParser#fromClause}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitFromClause(SQLParser.FromClauseContext ctx);
    /**
     * Visit a parse tree produced by {@link SQLParser#joinClause}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitJoinClause(SQLParser.JoinClauseContext ctx);
    /**
     * Visit a parse tree produced by {@link SQLParser#onClause}.
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitOnClause(SQLParser.OnClauseContext ctx);
}
